package com.shao.im.controller;


import com.shao.commons.domain.R;
import com.shao.im.entity.FriendsRequest;
import com.shao.im.entity.vo.FriendsRequestVo;
import com.shao.im.entity.vo.RequestHandlerVo;
import com.shao.im.service.FriendsRequestService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import java.util.List;

/**
 * 好友申请表(FriendsRequest)表控制层
 *
 * @author makejava
 * @since 2023-07-28 17:00:42
 */
@RestController
@RequestMapping("/friendsRequest")
@Slf4j
public class FriendsRequestController {
    /**
     * 服务对象
     */
    @Autowired
    private FriendsRequestService friendsRequestService;

    /**
     * 发送好友申请
     * @param friendsRequest 好友申请
     * @return 返回
     */
    @RequestMapping("/insert")
    public R insert(FriendsRequest friendsRequest) {
        //log.debug("[friends request] 好友请求 -{}", friendsRequest);
        friendsRequestService.save(friendsRequest);
        return R.success();
    }

    /**
     * 查询未处理的好友申请数量
     * @return 返回
     */
    @RequestMapping("/queryFriendRequestCount")
    public R queryRequestCount() {
        int count = friendsRequestService.queryCount();
        return R.success(count);
    }

    /**
     * 查询我的好友申请列表
     * @return 返回
     */
    @RequestMapping("/queryFriendRequestList")
    public R queryFriendRequestList() {
        List<FriendsRequestVo> friendsRequestVos = friendsRequestService.queryFriendRequestList();
        //log.debug("[friends request] 好友申请列表 - {}", friendsRequestVos);
        return R.success(friendsRequestVos);
    }

    /**
     * 同意/拒绝好友申请请求
     * @param requestHandlerVo
     *        id     - 发起好友申请的记录id
     *        status - 1 同意
     *               - 2 拒绝
     * @return 返回
     */
    @RequestMapping("/requestHandler")
    public R requestHandler(RequestHandlerVo requestHandlerVo) {
        //log.debug("[friends handler] 同意好友申请处理器 -{}", requestHandlerVo);
        int res = friendsRequestService.requestHandler(requestHandlerVo);
        return R.success();
    }
}

